﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _20_Iterator
{
    class Program
    {
        /*
         迭代器模式(Iterator):提供一种方法顺序访问一个聚合对象中各个元素，而又不暴露该对象的内部表示

            一个聚集对象，而且不管这些对象是什么都需要遍历的时候,你就应该考虑用迭代器模式。
            你需要对聚集有多种方式遍历时，可以考虑使用迭代器模式。为遍历不同的聚集结构提供如何开始、下一个、是否结束
            当前哪一项等统一的接口

        迭代器模式就是分离了集合对象的遍历行为，抽象出一个迭代器来负责，这样既可以做到不暴露集合的内部结构，有可以让
        外部代码透明的访问集合内部数据。
             */

        /*
         * lock 是确保当一个线程位于代码的临界区时；另一个线程不进入临界区。如果其他线程试图进入锁定代码，则它将一直等待(即被阻止)
         * 直到该对象被释放
         
         单例模式: 多线程中
             */
        static void Main(string[] args)
        {

        }
    }
}
